package edu.ptu.communityplatform.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import edu.ptu.communityplatform.domain.entity.Person;
import edu.ptu.communityplatform.domain.vos.PersonInfoVo;
import edu.ptu.communityplatform.domain.vos.PersonPageVo;

/**
 * @BelongsProject: communityPlatform
 * @BelongsPackage: edu.ptu.communityplatform.service
 * @Author: HYJ
 * @CreateTime: 2025-04-05  03:01
 * @Description: TODO
 * @Version: 1.0
 */
public interface IPersonService extends IService<Person> {
    /**
     * 根据ID获取人员姓名
     *
     * @param personId 人员ID
     * @return 人员姓名
     */
    String getPersonNameById(Long personId);


    /**
     * 根据ID获取人员手机号
     *
     * @param personId 人员ID
     * @return 人员手机号
     */
    String getPhoneNumberById(Long personId);

    /**
     * 分页查询人员信息
     *
     * @param pageNum    页码
     * @param pageSize   每页大小
     * @param plotId     小区ID
     * @param personName 人员姓名
     * @param roleId     角色ID
     * @return 人员分页信息
     */
    IPage<Person> getPersonPage(Integer pageNum, Integer pageSize, Long plotId, String personName, Integer roleId);

    /**
     * 根据ID删除人员信息
     *
     * @param personId 人员ID
     * @return 删除结果
     */
    boolean removeById(Long personId);


    Long getPlotIdByPersonId(Long personId);

    /**
     * 根据小区id查询小区下的用户信息
     *
     * @param plotId     小区id
     * @param personName 姓名
     * @return 小区下的用户信息
     */
    IPage<PersonInfoVo> getPersonInfoPage(
            Integer pageNum,
            Integer pageSize,
            Long plotId,
            String personName);
}
